package Wangcache

//使用ByteView来表示缓存值，是GeeCache主要数据结构,它是缓存值的抽象与封装

type ByteView struct {
	b []byte//它会存储真实的缓存值，选择byte类型是为了支持任意数据类型
}//因为这个玩意实现了Len方法，那么他就是value类型

//Len returns the vielw‘s length
func (v ByteView)Len()int{
	return len(v.b)
}

//这个是只读的防止缓存值被外部程序修改
func (v ByteView)ByteSlice()[]byte{
	return cloneBytes(v.b)
}

//返回字符串形式，必要时进行复制
func (v ByteView)String()string{
	return string(v.b)
}

func cloneBytes(b []byte)[]byte{
	c:=make([]byte,len(b))
	copy(c,b)
	return c
}




